package com.zhushenwudi.hmutils.ormdao;

import com.zhushenwudi.hmutils.utils.TextUtils;
import ohos.app.Context;
import ohos.data.DatabaseHelper;
import ohos.data.orm.OrmContext;
import ohos.data.orm.OrmDatabase;
import ohos.data.preferences.Preferences;

/**
 * 数据管理类
 */
public class DataHelper {
    private static DataHelper mInstance;
    private DatabaseHelper databaseHelper;

    private DataHelper(Context context) {
        databaseHelper = new DatabaseHelper(context);
    }

    /**
     * 实例一个单例数据管理类
     *
     * @param context 上下文
     */
    public static void init(Context context) {
        if (mInstance == null) {
            synchronized (DataHelper.class) {
                mInstance = new DataHelper(context);
            }
        }
    }

    /**
     * 得到数据表
     *
     * @param clz 数据结构类
     * @return OrmContext
     */
    public <T extends OrmDatabase> OrmContext selectTable(Class<T> clz) {
        return databaseHelper.getOrmContext(clz.getSimpleName(), clz.getSimpleName() + ".db", clz);
    }

    /**
     * 获取sp
     *
     * @param name 指定的sp name，默认为sp
     * @return Preferences
     */
    public Preferences getSp(String name) {
        if (TextUtils.isEmpty(name)) {
            name = "sp";
        }
        return databaseHelper.getPreferences(name);
    }

    /**
     * 获取数据存储工具类
     *
     * @return DataHelper
     */
    public static DataHelper getInstance() {
        return mInstance;
    }
}
